/* 
 * Copyright 2023 Sven dj.Zheng All Rights Reserved. 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). 
 * You may not use this file except in compliance with the License. 
 * A copy of the License is located at 
 * 
 *     http://aws.amazon.com/apache2.0/ 
 * 
 * or in the "license" file accompanying this file. This file is distributed 
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
 * express or implied. See the License for the specific language governing 
 * permissions and limitations under the License. 
 */

#ifndef __ULC_SDK_MESSAGE_RESPONSE_OBSERVER_INTERFACE_H_
#define __ULC_SDK_MESSAGE_RESPONSE_OBSERVER_INTERFACE_H_

#include <string>

namespace sdk {
namespace message {
namespace process {

/**
 * An interface for observing on an HttpClientManager object.
 */
class MessageResponseObserverInterface {
public:
    
    /**
     * Destructor.
     */
    virtual ~MessageResponseObserverInterface() = default;
    
    /**
     * A callback function to notify an object that an http request has response.
     *
     * @param code The code of the http request response state.
     * @param body The content for the http response data.
     */
    virtual void onResponsed(void *user, int code, const std::string& body = "") = 0;
 
};

}  // namespace http
}  // namespace device
}  // namespace sdk

#endif  // __ULC_SDK_KEYPAD_MANAGER_H_
